The NINJA Project: Making Java Work for High Performance Numerical Computing

نویسندگان

  • José E. Moreira
  • Samuel P. Midkiff
  • Manish Gupta
  • Pedro Artigas
  • Peng Wu
  • George Almasi
چکیده

When Java(TM) was first introduced, there was a perception (properly founded at the time) that its many benefits came at a significant performance cost. In few areas were the performance deficiencies of Java so blatant as in numerical computing. Our own measurements, with second-generation Java virtual machines, showed differences in performance of up to one hundred-fold relative to C or Fortran. The initial experiences with such poor performance caused many developers of high performance numerical applications to reject Java out-of-hand as a platform for their applications. Despite the rapid progress that has been made in the past few years, the performance of commercially available Java platforms is not yet on par with state-of-the-art Fortran and C compilers. Programs using complex arithmetic exhibit particularly bad performance. Furthermore, current Java platforms are incapable of automatically applying important optimizations for numerical code, such as loop transformations and automatic parallelization [12]. Nevertheless, our thesis is that there are no technical barriers to high performance computing in Java. To prove this thesis, we have developed a prototype Java environment, called Numerically INtensive JAva (NINJA), which has demonstrated Fortran-like performance can be obtained by Java on a variety of problems. We have successfully addressed issues such as dense and irregular matrix computations, calculations with complex numbers, automatic loop transformations, and automatic parallelization. Moreover, our techniques are straightforward to implement, and allow reuse of existing optimization components already deployed by software vendors for other languages [9], lowering the economic barriers to Java’s acceptance. The next challenge for numerically intensive computing in Java is convincing developers and managers in this domain that Java’s benefits can be obtained with performance comparable with highly tuned Fortran and C. This treatise contributes to overcoming that challenge. Once it is accepted that Java performance is only an artifact of particular implementations of Java, and that there are no technical barriers to Java achieving excellent numerical performance, our techniques will allow vendors and researchers to quickly deliver high performance Java platforms to program developers.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

NINJA: Java for high performance numerical computing

When Java was first introduced, there was a perception that its many benefits came at a significant performance cost. In the particularly performance-sensitive field of numerical computing, initial measurements indicated a hundred-fold performance disadvantage between Java and more established languages such as Fortran and C. Although much progress has been made, and Java now can be competitive...

متن کامل

A Customizable Implementation of RMI for High Performance Computing

This paper describes an implementation of Java's Remote Method Invocation (RMI) that is designed to run on top of the Globus high performance computing protocol. The primary contribution of this work is to illustrate how the object serialization mechanism used by RMI can be extended so that it becomes more con gurable. This allows the implementation of object serialization protocols that are mo...

متن کامل

Despliegue de monitores con los mecanismos de reflexión y las extensiones de gestión de Java

Monitoring process let self-adapting systems to watch their current state and therefore making the needed changes. Deploying monitors into a system involves adding the necessary statements into the source code and the possibility to impact the system’s performance during execution, also if monitors use reflection mechanisms. This paper features a scheme to deploy monitors on compiled systems, r...

متن کامل

Suitability of Java for Solving Large Sparse Positive Definite Systems of Linear Equations using Direct Methods

The purpose of the thesis is to determine whether Java, a programming language that evolved out of a research project by Sun Microsystems in 1990, is suitable for solving large sparse linear systems using direct methods. That is, can performance comparable to the language traditionally used for sparse matrix computation, Fortran, be achieved by a Java implementation. Performance evaluation crit...

متن کامل

High performance numerical libraries in Java

In this paper we outline a set of numerical libraries for high performance scientific computing. The libraries are implemented in the Java programming language, which offers modern features such as clean object orientation, platform independence, garbage collection and more. Java has been regarded as unsuitable for high computing due to its conceived low performance. In this article we show how...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2001